#Использовать 1commands
#Использовать tempfiles

Перем Лог;
Перем КаталогИсходниковEDT;
Перем КаталогРезультатаКонвертации;
Перем РабочийКаталогРИНГ;
Перем КаталогЕДТ Экспорт;
Перем КаталогРабочейОбластиЕДТ Экспорт;


Процедура УстановитьЛог(НовыйЛог) Экспорт
	Лог=НовыйЛог;
КонецПроцедуры

Процедура УстановитьКаталогИсходниковEDT(НовыйКаталогЕДТ) Экспорт
	КаталогИсходниковEDT=НовыйКаталогЕДТ;
КонецПроцедуры

Процедура УстановитьКаталогРезультатаКонвертации(НовыйКаталогРезультатаКонвертации) Экспорт
	КаталогРезультатаКонвертации=НовыйКаталогРезультатаКонвертации;
КонецПроцедуры

Функция ВыполнитьКонвертацию() Экспорт
	Если Не ЗначениеЗаполнено(КаталогЕДТ) Тогда
		Сообщить("Не указан каталог расположения исполняемых файлов 1cedtcli. Конвертация исходников невозможна");
		Возврат Ложь;
	КонецЕсли;
	МенеджерВременныхФайлов = Новый МенеджерВременныхФайлов();
	// МенеджерВременныхФайлов.БазовыйКаталог = ОбъединитьПути(КаталогРезультатаКонвертации, "EDTWorkspace");
	
	Если ЗначениеЗаполнено(КаталогРабочейОбластиЕДТ) Тогда
		РабочийКаталогРИНГ = КаталогРабочейОбластиЕДТ;
	Иначе
		РабочийКаталогРИНГ = МенеджерВременныхФайлов.СоздатьКаталог();
	КонецЕсли;
	
	ЭтоWindows = ОбщиеМетоды.ЭтоWindows();
	Если ЭтоWindows Тогда
		ПутьКФайлуCLI = ОбъединитьПути(КаталогЕДТ, "1cedtcli.exe");
	Иначе
		ВариантыСкриптаЗапускаEDT = Новый Массив;
		ВариантыСкриптаЗапускаEDT.Добавить("1cedtcli");
		ВариантыСкриптаЗапускаEDT.Добавить("1cedtcli.sh");
		
		ПутьКФайлуCLI = "";
		Для Каждого ТекВариантСкрипта Из ВариантыСкриптаЗапускаEDT Цикл
			ПутьДляПроверки = ОбъединитьПути(КаталогЕДТ, ТекВариантСкрипта);
			
			ФайлПутиКПроверке = Новый Файл(ПутьДляПроверки);
			Если ФайлПутиКПроверке.Существует() Тогда
				ПутьКФайлуCLI = ПутьДляПроверки;
				Прервать;
			КонецЕсли;
		КонецЦикла;
	КонецЕсли;
	
	ФайлCLI = Новый Файл(ПутьКФайлуCLI);
	Если Не ФайлCLI.Существует() Тогда
		Сообщить("Не обнаружен файл едт "+ПутьКФайлуCLI);
		Возврат Ложь;
	КонецЕсли;
	
	Команда = Новый Команда;
	Команда.ДобавитьЛогВыводаКоманды(Лог);
	Команда.УстановитьКоманду(""""+ПутьКФайлуCLI+"""");
	Команда.ДобавитьПараметр("-v");
	Команда.ДобавитьПараметр("-data");
	Команда.ДобавитьПараметр(""""+РабочийКаталогРИНГ+"""");
	Команда.ДобавитьПараметр("-command");
	Команда.ДобавитьПараметр("export");
	Команда.ДобавитьПараметр("--project");
	Команда.ДобавитьПараметр(""""+КаталогИсходниковEDT+"""");
	Команда.ДобавитьПараметр("--configuration-files");
	Команда.ДобавитьПараметр(""""+КаталогРезультатаКонвертации+"""");
	Команда.ПоказыватьВыводНемедленно(Истина);    
	Команда.УстановитьКодировкуВывода(КодировкаТекста.UTF8);
	
	КодВозврата = Команда.Исполнить();
	МенеджерВременныхФайлов.Удалить();
	
	Возврат КодВозврата=0;
КонецФункции

КаталогРабочейОбластиЕДТ = "";
Лог=Новый Лог("app.build.tools_ui_1c");